package com.oa.modules.sys.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 部门表
 *
 * @author sunhui
 * @email 707022627@qq.com
 * @date 2019-10-10 18:23:00
 */
@Data
@TableName("sys_dept")
@ApiModel(value = "部门表")
public class SysDeptEntity implements Serializable, Comparable<SysDeptEntity>{
    /**
     * 部门id
     */
    @TableId(type = IdType.INPUT)
    @ApiModelProperty(value = "部门id")
    private String deptId;
    /**
     * 父部门id
     */
    @ApiModelProperty(value = "父部门id")
    private String parentId;
    /**
     * 祖级列表
     */
    @ApiModelProperty(value = "祖级列表")
    private String ancestors;
    /**
     * 部门名称
     */
    @ApiModelProperty(value = "部门名称")
    private String deptName;
    /**
     * 显示顺序
     */
    @ApiModelProperty(value = "显示顺序")
    private Integer orderNum;
    /**
     * 负责人
     */
    @ApiModelProperty(value = "负责人")
    private String leader;
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    private String phone;
    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    private String email;
    /**
     * 部门状态（0正常 1停用）
     */
    @ApiModelProperty(value = "部门状态（0正常 1停用）")
    private String status;
    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @ApiModelProperty(value = "删除标志（0代表存在 2代表删除）")
    private String delFlag;
    /**
     * 创建者
     */
    @ApiModelProperty(value = "创建者")
    private String createBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 更新者
     */
    @ApiModelProperty(value = "更新者")
    private String updateBy;
    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    /**
     * 租户ID
     */
    @ApiModelProperty(value = "租户ID")
    private String tenantId;
    /**
     * 创建人信息
     */
    @ApiModelProperty(value = "创建人")
    @TableField(exist = false)
    private SysUserEntity user;
    /**
     * 负责人信息
     */
    @ApiModelProperty(value = "负责人信息")
    @TableField(exist = false)
    private SysUserEntity leaderUser;
    /**
     * 金豆上限
     */
    @ApiModelProperty(value = "金豆上限")
    private Integer goldenMax;

    @ApiModelProperty(value = "公司介绍")
    private String context;

    @ApiModelProperty(value = "公司图片")
    private String image;

    /**
     * 图片路径
     */
    @ApiModelProperty(value = "图片HTML路径")
    private String imageHtmlUrl;
    /**
     * logo路径
     */
    @ApiModelProperty(value = "图片HOME路径")
    private String logImage;
    /**
     * logo路径
     */
    @ApiModelProperty(value = "图片HTML路径")
    private String logImageHtmlUrl;


    @ApiModelProperty(value = "公司地址")
    private String address;

    @ApiModelProperty(value = "公司详细地址")
    private String detailed;

    @ApiModelProperty(value = "推销人数上限")
    private Integer highest;

    /**
     * 用户信息
     */
    @ApiModelProperty(value = "用户信息")
    @TableField(exist = false)
    private SysUserEntity sysUser;

    /**
     * 员工数量
     */
    @ApiModelProperty(value = "员工数量")
    @TableField(exist = false)
    private Integer userSize;

    /**
     * 点击数量
     */
    @ApiModelProperty(value = "点击数量")
    @TableField(exist = false)
    private Integer shopSize;

    /**
     * 下单数量
     */
    @ApiModelProperty(value = "下单数量")
    @TableField(exist = false)
    private Integer orderSize;

    /**
     * 下单总金额
     */
    @ApiModelProperty(value = "下单总金额")
    @TableField(exist = false)
    private BigDecimal orderPrice;

    @Override
    public int compareTo(SysDeptEntity o) {
        return this.getShopSize()-o.getShopSize(); //升序
        //return o.id-this.id;  降序
    }
}
